#ifndef __KV_CONFIG_READER_H__
#define __KV_CONFIG_READER_H__

#include <string>

namespace KVConfig
{

    class Data;
    class ReaderImp;

    class Reader
    {
    public:
        Reader();
        ~Reader();

    public:
        void setKVSparator(char cKVSp);
        void setCommentSparator(char cCommentSp);

        bool parseString(const std::string &context, Data &data) const;
        bool parseFile(const std::string &file_name, Data &data) const;

    public:
        static int selfTest();

    private:
        Reader(const Reader &);
        Reader& operator = (const Reader &);

    private:
        ReaderImp *m_pImp;
    };
}

#endif //__KV_CONFIG_READER_H__
